﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be
Partial Class Reportes_Proformas
    Inherits System.Web.UI.Page

    Private proformas As List(Of EproformaCabecera) = Nothing
    Private proformasDetalles As List(Of EproformaDetalle) = Nothing

#Region "       Formulario                          "
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            txtFchInicio.Text = ""
            upFchInicio.Update()
            txtFchFin.Text = ""
            upFchFin.Update()
        End If
    End Sub
    
    Protected Sub btnBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles btnBuscar.Click
        If txtFchInicio.Text.Length > 0 AndAlso txtFchFin.Text.Length > 0 Then
            Dim proforma As New EproformaCabecera
            With proforma
                .idProyecto = Me.Master.idProyecto
                .idEtapa = Me.Master.idEtapa
                '.EposibleCliente = New EposibleCliente
                .fchInicio = txtFchInicio.Text
                .fchFin = txtFchFin.Text
                .filtro = txtPosCliente.Value
            End With
            proformas = RproformaCabecera.ConsultaProformaModulo(Me.Master.descEmpresa, False, proforma)
            Session("reporteProforma") = proformas
            proformasDetalles = RproformaDetalle.ReporteProformaDetalle(Me.Master.descEmpresa, False, proforma)
            Session("reporteProformaDetalles") = proformasDetalles
            If Not proformas Is Nothing Then
                egvProforma.DataSource = proformas
                egvProforma.DataBind()
                upnSeparacionVenta.Update()

                lblTotalIngresosSeparación.Text = String.Format(": {0:###,###,##00.00}", (From prof As EproformaCabecera In proformas _
                                                                                          Select prof.totalMontoFinal).Sum())
            End If
        End If
    End Sub
    Protected Sub btnLimpiar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click

        txtFchInicio.Text = ""
        upFchInicio.Update()
        txtFchFin.Text = ""
        upFchFin.Update()
        egvProforma.DataSource = Nothing
        upnSeparacionVenta.Update()
    End Sub
    Protected Sub btnExportar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportar.Click
        proformas = Session("reporteProforma")
        proformasDetalles = Session("reporteProformaDetalles")
        If Not proformas Is Nothing Then
            Dim fileName As String = "ConsultaProforma{0}.xls"
            fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
            Dim Response As HttpResponse = HttpContext.Current.Response
            Response.ContentType = "application/vnd.ms-excel"
            Response.Charset = "UTF-8"
            Response.ContentEncoding = System.Text.Encoding.Default
            Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)

            Response.Write("idProyecto") : Response.Write(vbTab)
            Response.Write("Proyecto") : Response.Write(vbTab)
            Response.Write("idEtapa") : Response.Write(vbTab)
            Response.Write("Etapa") : Response.Write(vbTab)
            Response.Write("Nº Proforma") : Response.Write(vbTab)
            Response.Write("Fecha") : Response.Write(vbTab)
            Response.Write("N°. Semana") : Response.Write(vbTab)
            Response.Write("Nombres") : Response.Write(vbTab)
            Response.Write("DNI") : Response.Write(vbTab)
            Response.Write("Rango de Edad") : Response.Write(vbTab)
            Response.Write("Teléfonos") : Response.Write(vbTab)
            Response.Write("T. Ingreso") : Response.Write(vbTab)
            Response.Write("Distrito") : Response.Write(vbTab)
            Response.Write("Email") : Response.Write(vbTab)
            Response.Write("Vendedor") : Response.Write(vbTab)
            Response.Write("Inmueble") : Response.Write(vbTab)
            Response.Write("Nivel de Interés") : Response.Write(vbTab)
            Response.Write("Como se Entero") : Response.Write(vbTab)
            Response.Write("Forma de Contacto") : Response.Write(vbTab)
            Response.Write("Descuento") : Response.Write(vbTab)
            Response.Write("Perfil Crediticio") : Response.Write(vbTab)
            Response.Write("Total") : Response.Write(vbTab)
            Response.Write("Observación") : Response.Write(vbTab)
            Response.Write(vbCrLf)

            Dim value As String
            Dim varIdProforma As Int32 = 0
            For Each proforma In proformas
                value = proforma.idProyecto
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.descProyecto
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.idEtapa
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.descEtapa
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.idProforma
                varIdProforma = proforma.idProforma
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.fchCreacion
                Response.Write(value) : Response.Write(vbTab)

                value = DatePart(DateInterval.WeekOfYear, CType(proforma.fchCreacion, Date))
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.NombresCompletos
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.nroDocumento.Trim
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.rangoEdadDe.Trim & " -- " & proforma.RangoEdadHasta.Trim
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.TelefonosPosCliente
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.totalIngreso.ToString("###,##0.00")
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.distrito
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.emailCliente
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.nombreCompletosVendedor
                Response.Write(value) : Response.Write(vbTab)

                If Not proformasDetalles Is Nothing Then
                    Dim valueDetalle As String = Nothing
                    For Each pd In proformasDetalles
                        If proforma.idProyecto = pd.idProyecto AndAlso _
                           proforma.idEtapa = pd.idEtapa AndAlso _
                           proforma.idProforma = pd.idProforma Then

                            valueDetalle += pd.nomModelo.Trim + ":" + pd.nroInmueble.Trim + ","
                        End If
                    Next
                    Response.Write(valueDetalle) : Response.Write(vbTab)
                End If

                value = proforma.descNivelInteres
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.descComoSeEntero
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.descFormaContacto
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.descuento.ToString("###,##0.00")
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.descPerfilCrediticio
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.totalMontoFinal.ToString("###,##0.00")
                Response.Write(value) : Response.Write(vbTab)

                value = proforma.observacion
                Response.Write(value) : Response.Write(vbTab) : Response.Write(vbCrLf)
            Next
            Response.End()
        Else
            Dim jsMensaje As String = Nothing
            jsMensaje = "<script>javascript:alert(' La consulta no pudo ser procesada.  Por favor inténtelo de nuevo.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If

    End Sub
#End Region

#Region "       Proforma Detalle                    "
    Protected Sub egvProforma_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles egvProforma.PageIndexChanging
        proformas = Session("reporteProforma")
        If Not proformas Is Nothing Then
            egvProforma.DataSource = proformas
            egvProforma.PageIndex = e.NewPageIndex
            egvProforma.DataBind()
            upnSeparacionVenta.Update()
        End If
    End Sub
 
    Protected Sub egvDetalleProforma_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
        End If
    End Sub
#End Region

End Class
